perm filename TALK[4,KMC] blob
sn#156972 filedate 1975-04-27 generic text, type T, neo UTF8
DO FILES
R MLISPC↔MLISP(PAT,NIL);↔β
|
R LISP 16↔2000 2000 (DSKIN(PAT.LSP)(SLEEP.LAP)SYS: UTILS≠
(INITFN RESTART)↔
|
R MLISPC↔MLISP(DOC,NIL);↔β
|
R LISP 16↔2000 2000 (DSKIN(DOC.LSP)(SLEEP.LAP)SYS: UTILS≠
(INITFN RESTART)↔
SLEEP.LAP
(LAP SLEEP SUBR)
(CALL 1 (E NUMVAL))
(047000 1 31)
(POPJ P)
NIL
% DOC %
% THIS IS A PROGRAM NEEDED BY 'PAT'. TO RECONSTRUCT THE DOC CORE IMAGE:
R MLISPC↔MLISP(DOC,NIL);↔β
R LISP 16↔2000 2000 (DSKIN(DOC.LSP)(SLEEP.LAP)SYS: UTILS≠
(INITFN RESTART)↔
SAVE DOC
TO RUN THE PROGRAM, TYPE
.RUN DOC
%
BEGIN
NEW FILEAREA,INFILE,OUTFILE;
SPECIAL FILEAREA,INFILE,OUTFILE,MESSNO;
EXPR ERROR(L); PRINT(L);
EXPR LPRINT(L); MAPC('PRINC,REVERSE(L));
EXPR SENDMESS(L);
BEGIN NEW A,CHAN;
A←ERRSET( CHAN←EVAL< 'OUTPUT,FILEAREA,OUTFILE >, NIL);
IF ¬A THEN ERROR("CANT SEND OUTPUT") ALSO EXIT();
OUTC(CHAN,NIL);
MESSNO←MESSNO+1; PRINT MESSNO; PRINT L;
OUTC(NIL,T);
END;
EXPR WAITONMESS(N,FLAG);
BEGIN NEW A;
WHILE ¬A←MAILIN(N) DO BEGIN
IF FLAG THEN PRINTSTR("WAITING...");
SLEEP(10);
END;
RETURN A;
END;
EXPR MAILIN(N);
BEGIN NEW A,CHAN;
A←ERRSET( CHAN←EVAL< 'INPUT,FILEAREA,INFILE >, NIL);
IF ¬A THEN RETURN NIL;
INC(CHAN,NIL);
A←READ(); IF ¬(A=N) THEN INC(NIL,T) ALSO RETURN NIL;
A←READ();
INC(NIL,T);
RETURN A;
END;
EXPR CHECKMAIL();
BEGIN NEW A,B,C,D,CHAN;
A←ERRSET( CHAN←EVAL< 'INPUT,FILEAREA,INFILE >, NIL);
IF ¬A THEN ERROR( "CANT RESTART -- FILE WAS DELETED" );
INC(CHAN,NIL); A←READ(); B←READ(); INC(NIL,T);
C←ERRSET( CHAN←EVAL< 'INPUT,FILEAREA,OUTFILE >, NIL);
IF ¬C THEN ERROR( "CANT RESTART -- FILE WAS DELETED" );
INC(CHAN,NIL); C←READ(); D←READ(); INC(NIL,T);
RETURN <A,B,C,D>;
END;
EXPR SLEEP(N); SLEEP2(N);
EXPR SLEEP2(N);
FOR I←1 TO N BY 1 DO PRINT(I);
EXPR RUN();
BEGIN NEW A,RESTART,CH,L;
FILEAREA←'(NET KMC); INFILE←'IN; OUTFILE←'OUT;
MESSNO←0;
PRINC("ARE YOU STARTING A CONVERSATION
OR RESTARTING AFTER A SYSTEM CRASH?[S OR R]");
RESTART←READ(); RESTART←¬(RESTART='S);
IF ¬RESTART THEN BEGIN
PRINTSTR "
IF THE SYSTEM GOES DOWN,
YOU MAY HAVE TO RETYPE YOUR LAST QUESTION.
WE WILL BE READY TO GO IN A MINUTE.
";
SENDMESS( '(RRRRREADY) );
A←WAITONMESS(1,T);
IF ¬(A EQUAL '(RRRRREADY)) THEN ERROR("INITIALIZATION NO GOOD");
PRINTSTR "
END INPUT WITH TWO ALTMODES.
";
END ELSE % RESTART ROUTINE %
BEGIN
L←CHECKMAIL();
IF CAR L=CADDR L THEN PRINTSTR "LAST INPUT: " ALSO LPRINT(CADR L)
ALSO RESTART←NIL
ELSE PRINTSTR "LAST OUTPUT: " ALSO LPRINT(CADDDR L)
ALSO PRINTSTR "WAITING...";
MESSNO←CADDR L;
END;
WHILE T DO BEGIN
TERPRI TERPRI NIL; L←NIL;
IF ¬RESTART THEN BEGIN
PRINTSTR "READY:";
DO NIL UNTIL (CH ← READCH()) NEQ CR & CH NEQ LF & CH NEQ ALTMODE;
TERPRI DO L ← CH CONS L UNTIL (CH ← READCH()) EQ ALTMODE & (CH ← READCH()) EQ ALTMODE;
SENDMESS(L);
END;
RESTART←NIL;
L←WAITONMESS(MESSNO,NIL);
TERPRI NIL;
LPRINT(L);
END;
END;
RUN();
END.
% PAT %
% THIS IS A PROGRAM NEEDED BY 'DOC'. TO RECONSTRUCT THE PAT CORE IMAGE:
R MLISPC↔MLISP(PAT,NIL);↔β
R LISP 16↔2000 2000 (DSKIN(PAT.LSP)(SLEEP.LAP)SYS: UTILS≠
(INITFN RESTART)↔
SAVE PAT
TO RUN THE PROGRAM, TYPE
.RUN PAT
%
BEGIN
NEW FILEAREA,INFILE,OUTFILE;
SPECIAL FILEAREA,INFILE,OUTFILE,MESSNO;
EXPR ERROR(L); PRINT(L);
EXPR LPRINT(L); MAPC('PRINC,REVERSE(L));
EXPR SENDMESS(L);
BEGIN NEW A,CHAN;
A←ERRSET( CHAN←EVAL< 'OUTPUT,FILEAREA,OUTFILE >, NIL);
IF ¬A THEN ERROR("CANT SEND OUTPUT") ALSO EXIT();
OUTC(CHAN,NIL);
MESSNO←MESSNO+1; PRINT MESSNO; PRINT L;
OUTC(NIL,T);
END;
EXPR WAITONMESS(N,FLAG);
BEGIN NEW A;
WHILE ¬A←MAILIN(N) DO BEGIN
IF FLAG THEN PRINTSTR("WAITING...");
SLEEP(10);
END;
RETURN A;
END;
EXPR MAILIN(N);
BEGIN NEW A,CHAN;
A←ERRSET( CHAN←EVAL< 'INPUT,FILEAREA,INFILE >, NIL);
IF ¬A THEN RETURN NIL;
INC(CHAN,NIL);
A←READ(); IF ¬(A=N) THEN INC(NIL,T) ALSO RETURN NIL;
A←READ();
INC(NIL,T);
RETURN A;
END;
EXPR CHECKMAIL();
BEGIN NEW A,B,C,D,CHAN;
A←ERRSET( CHAN←EVAL< 'INPUT,FILEAREA,INFILE >, NIL);
IF ¬A THEN ERROR( "CANT RESTART -- FILE WAS DELETED" );
INC(CHAN,NIL); A←READ(); B←READ(); INC(NIL,T);
C←ERRSET( CHAN←EVAL< 'INPUT,FILEAREA,OUTFILE >, NIL);
IF ¬C THEN ERROR( "CANT RESTART -- FILE WAS DELETED" );
INC(CHAN,NIL); C←READ(); D←READ(); INC(NIL,T);
RETURN <A,B,C,D>;
END;
EXPR SLEEP(N); SLEEP2(N);
EXPR SLEEP2(N);
FOR I←1 TO N BY 1 DO PRINT(I);
EXPR RUN();
BEGIN NEW A,RESTART,CH,L;
FILEAREA←'(NET KMC); INFILE←'OUT; OUTFILE←'IN;
MESSNO←0;
PRINC("ARE YOU STARTING A CONVERSATION
OR RESTARTING AFTER A SYSTEM CRASH?[S OR R]");
RESTART←READ(); RESTART←¬(RESTART='S);
IF ¬RESTART THEN BEGIN
PRINTSTR "
IF THE SYSTEM GOES DOWN,
YOU MAY HAVE TO RETYPE YOUR LAST QUESTION.
WE WILL BE READY TO GO IN A MINUTE.
";
A←WAITONMESS(1,T);
IF ¬(A EQUAL '(RRRRREADY)) THEN ERROR("INITIALIZATION NO GOOD");
SENDMESS( '(RRRRREADY) );
PRINTSTR "
END INPUT WITH TWO ALTMODES.
";
END
ELSE %RESTART ROUTINE% BEGIN
L←CHECKMAIL();
IF CAR L=CADDR L THEN PRINTSTR "LAST OUTPUT: " ALSO LPRINT(CADDDR L)
ALSO PRINTSTR "WAITING..." ALSO RESTART←NIL
ELSE PRINTSTR "LAST INPUT: " ALSO LPRINT(CADR L);
MESSNO←CADDR L;
END;
WHILE T DO BEGIN
IF ¬RESTART THEN BEGIN
L←WAITONMESS(MESSNO+1,NIL);
TERPRI NIL;
PRINTSTR "INTERVIEWER:";
LPRINT(L);
END;
RESTART←NIL;
TERPRI TERPRI NIL; L←NIL;
PRINTSTR "READY:";
DO NIL UNTIL (CH ← READCH()) NEQ CR & CH NEQ LF & CH NEQ ALTMODE;
TERPRI DO L ← CH CONS L UNTIL (CH ← READCH()) EQ ALTMODE & (CH ← READCH()) EQ ALTMODE;
SENDMESS(L);
END;
END;
RUN();
END.